package geditor.common {
import flash.geom.Point;

/**
 * Компонент, который может быть пристыкован (aligned) к другим компонентам
 */
public interface AlignComponent {

    /**
     * Определяет, может ли данный объект быть пристыкован к переданному объекту, измеряет расстояние до объекта
     * @param obj объект, который необходимо проверить
     * @return AlignInformation информация о возможности пристыковки компонента
     */
    function canAlign(obj:Object):AlignInformation;

    /**
     * Пристыковать данный компонент к выбранному
     * @param align компонент, к которому нужно пристыковать данный
     */
    function doAlign(align:Object):void;

    /**
     * Устанавливает текущее положение курсора мыши
     * @param value текущее положение курсора мыши
     */
    function set temp(value:Point):void;

    function get isTemp():Boolean;
}
}